#if !defined(_VMULTI_CLIENT_H_)
#define _VMULTI_CLIENT_H_

#include "vmulticommon.h"

typedef struct _vmulti_client_t* pvmulti_client;

pvmulti_client vmulti_alloc(void);

void vmulti_free();

BOOL vmulti_connect();

void vmulti_disconnect();

BOOL vmulti_update_mouse( BYTE button, USHORT x, USHORT y, BYTE wheelPosition);

BOOL vmulti_update_relative_mouse( BYTE button, BYTE x, BYTE y, BYTE wheelPosition);

BOOL vmulti_update_digi( BYTE status, USHORT x, USHORT y);

BOOL vmulti_update_multitouch( PTOUCH pTouch, BYTE actualCount);

BOOL vmulti_update_joystick( USHORT buttons, BYTE hat, BYTE x, BYTE y, BYTE rx, BYTE ry, BYTE throttle);

BOOL vmulti_update_keyboard( BYTE shiftKeyFlags, BYTE keyCodes[KBD_KEY_CODES]);

BOOL vmulti_write_message( VMultiMessageReport* pReport);

BOOL vmulti_read_message( VMultiMessageReport* pReport);

#endif
